#ifndef EPUBZLIB_IMPL_CONTEXT_HPP
#define EPUBZLIB_IMPL_CONTEXT_HPP

SJR_NAMESPACE_BEGIN

class EpubContext final {
public:
  using OnContextZipProcessListener = EpubZip::OnZipProcessListener;

  EpubContext() : mZip() {}

  EpubContext(EpubContext const &) = delete;
  EpubContext &operator=(EpubContext const &) = delete;

  void clean() {
    mZip.clean();
  }

  void add(std::string const &path) {
    mZip.add(path);
  }

  void compress(std::string const &path) {
    mZip.compress(path);
  }

  void registerOnContextZipProcessListener(OnContextZipProcessListener *listener) {
    mZip.registerOnZipProcessListener(listener);
  }

  void unregisterOnContextZipProcessListener(OnContextZipProcessListener *listener) {
    mZip.unregisterOnZipProcessListener(listener);
  }

private:
  EpubZip mZip;
};

SJR_NAMESPACE_END

#endif//EPUBZLIB_IMPL_CONTEXT_HPP
